package main

import (
	"fmt"
)

// interface{}是万能数据类型
func myFunc(arg interface{}) {
	fmt.Println("myFunc is called... arg==", arg)

	//interface{} 如何区分此时引用的底层数据类型？ golang给interface{}提供了断言的机制
	value, ok := arg.(string)
	if !ok {
		fmt.Println("arg is not string")
	} else {
		fmt.Println("arg is string type,value=", value)
	}
}

func main() {
	book := Book{"golang", "abc"}
	myFunc(book)

	myFunc(100)
	myFunc("abc")
	myFunc(3.14)
}
